home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C / Applications / Tcl-Tk 8.0 / Pre-installed version / tk8.0 / win / makefile.bc < prev    next >
Encoding:
Makefile  |  1997-08-15  |  6.8 KB  |  342 lines  |  [TEXT/ALFA]

  1. # Borland C++ 4.5 makefile for Tk
  2. #
  3. # Copyright (c) 1995-1996 by Sun Microsystems, Inc.
  4. #
  5. # See the file "license.terms" for information on usage and redistribution
  6. # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  7. #
  8. # SCCS: @(#) makefile.bc 1.72 97/08/13 17:38:48
  9.  
  10.  
  11. #
  12. # Project directories
  13. #
  14. # ROOT = top of source tree
  15. # TMPDIR = location where .obj files should be stored during build
  16. # TCLDIR = location of top of Tcl source heirarchy
  17. #
  18.  
  19. ROOT    = ..
  20. TMPDIR    = .
  21. TOOLS    = c:\bc45
  22. TCLDIR    = ..\..\tcl8.0
  23.  
  24. # uncomment the following line to compile with symbols
  25. #DEBUG=1
  26.  
  27. # uncomment the following line to compile with TCL_MEM_DEBUG
  28. #DEBUGDEFINES    =TCL_MEM_DEBUG
  29.  
  30. #
  31. # Borland C++ tools
  32. #
  33.  
  34. BORLAND = $(TOOLS)
  35. IMPLIB  = $(BORLAND)\bin\Implib
  36. BCC32   = $(BORLAND)\bin\Bcc32
  37. TLINK32 = $(BORLAND)\bin\tlink32
  38. RC    = $(BORLAND)\bin\brcc32
  39. CP      = copy
  40. RM      = del
  41.  
  42. INCLUDES =    $(BORLAND)\include;$(ROOT)\generic;$(ROOT)\bitmaps;$(ROOT)\xlib;$(ROOT)\win;$(TCLDIR)\generic
  43. LIBDIRS =    $(BORLAND)\lib;$(ROOT)\win
  44. TCLLIBDIR =    $(TCLDIR)\win
  45.  
  46.  
  47. !ifndef DEBUG
  48.  
  49. # these macros cause maximum optimization and no symbols
  50. DEBUGLDFLAGS = 
  51. DEBUGCCFLAGS = -v- -vi- -O2
  52.  
  53. !else
  54.  
  55. # these macros enable debugging
  56. DEBUGLDFLAGS = -v
  57. DEBUGCCFLAGS = -k -Od -v
  58.  
  59. !endif
  60.  
  61. DEFINES = _RTLDLL;STRICT;$(DEBUGDEFINES)
  62. PROJECTCCFLAGS= $(DEBUGCCFLAGS) -w-par -w-stu
  63.  
  64. LNFLAGS_exe = -Tpe -aa -c $(DEBUGLDFLAGS) $(BORLAND)\lib\c0w32
  65. LNFLAGS_dll = -Tpd -aa -c $(DEBUGLDFLAGS) $(BORLAND)\lib\c0d32
  66.  
  67. LNLIBS_exe =    $(TKLIB) $(TCLLIBDIR)\$(TCLLIB) import32 cw32i
  68. LNLIBS_dll =    $(TCLLIBDIR)\$(TCLLIB) import32 cw32i
  69.  
  70. # Global makefile settings
  71. #
  72.  
  73. .AUTODEPEND
  74. .CACHEAUTODEPEND
  75.  
  76. .suffixes: .c .dll .lib .obj .exe
  77.  
  78. .path.c=$(ROOT)\win;$(ROOT)\generic;$(ROOT)\xlib;$(ROOT)\unix
  79. .path.obj=$(TMPDIR)
  80.  
  81. WISHOBJS = \
  82.     $(TMPDIR)\tkConsole.obj \
  83.     $(TMPDIR)\winMain.obj
  84.  
  85. TKTESTOBJS = \
  86.     $(TMPDIR)\tkConsole.obj \
  87.     $(TMPDIR)\tkTest.obj \
  88.     $(TMPDIR)\tkSquare.obj \
  89.     $(TMPDIR)\testMain.obj
  90.  
  91. XLIBOBJS = \
  92.     $(TMPDIR)\xcolors.obj \
  93.     $(TMPDIR)\xdraw.obj \
  94.     $(TMPDIR)\xgc.obj \
  95.     $(TMPDIR)\ximage.obj \
  96.     $(TMPDIR)\xutil.obj
  97.  
  98. TKOBJS = \
  99.     $(TMPDIR)\tkUnixMenubu.obj \
  100.     $(TMPDIR)\tkUnixScale.obj \
  101.     $(XLIBOBJS) \
  102.     $(TMPDIR)\tkWin3d.obj \
  103.     $(TMPDIR)\tkWin32Dll.obj \
  104.     $(TMPDIR)\tkWinButton.obj \
  105.     $(TMPDIR)\tkWinClipboard.obj \
  106.     $(TMPDIR)\tkWinColor.obj \
  107.     $(TMPDIR)\tkWinCursor.obj \
  108.     $(TMPDIR)\tkWinDialog.obj \
  109.     $(TMPDIR)\tkWinDraw.obj \
  110.     $(TMPDIR)\tkWinEmbed.obj \
  111.     $(TMPDIR)\tkWinFont.obj \
  112.     $(TMPDIR)\tkWinImage.obj \
  113.     $(TMPDIR)\tkWinInit.obj \
  114.     $(TMPDIR)\tkWinKey.obj \
  115.     $(TMPDIR)\tkWinMenu.obj \
  116.     $(TMPDIR)\tkWinPixmap.obj \
  117.     $(TMPDIR)\tkWinPointer.obj \
  118.     $(TMPDIR)\tkWinRegion.obj \
  119.     $(TMPDIR)\tkWinScrlbr.obj \
  120.     $(TMPDIR)\tkWinSend.obj \
  121.     $(TMPDIR)\tkWinWindow.obj \
  122.     $(TMPDIR)\tkWinWm.obj \
  123.     $(TMPDIR)\tkWinX.obj \
  124.     $(TMPDIR)\stubs.obj \
  125.     $(TMPDIR)\tk3d.obj \
  126.     $(TMPDIR)\tkArgv.obj \
  127.     $(TMPDIR)\tkAtom.obj \
  128.     $(TMPDIR)\tkBind.obj \
  129.     $(TMPDIR)\tkBitmap.obj \
  130.     $(TMPDIR)\tkButton.obj \
  131.     $(TMPDIR)\tkCanvArc.obj \
  132.     $(TMPDIR)\tkCanvBmap.obj \
  133.     $(TMPDIR)\tkCanvImg.obj \
  134.     $(TMPDIR)\tkCanvLine.obj \
  135.     $(TMPDIR)\tkCanvPoly.obj \
  136.     $(TMPDIR)\tkCanvPs.obj \
  137.     $(TMPDIR)\tkCanvText.obj \
  138.     $(TMPDIR)\tkCanvUtil.obj \
  139.     $(TMPDIR)\tkCanvWind.obj \
  140.     $(TMPDIR)\tkCanvas.obj \
  141.     $(TMPDIR)\tkClipboard.obj \
  142.     $(TMPDIR)\tkCmds.obj \
  143.     $(TMPDIR)\tkColor.obj \
  144.     $(TMPDIR)\tkConfig.obj \
  145.     $(TMPDIR)\tkCursor.obj \
  146.     $(TMPDIR)\tkEntry.obj \
  147.     $(TMPDIR)\tkError.obj \
  148.     $(TMPDIR)\tkEvent.obj \
  149.     $(TMPDIR)\tkFileFilter.obj \
  150.     $(TMPDIR)\tkFocus.obj \
  151.     $(TMPDIR)\tkFont.obj \
  152.     $(TMPDIR)\tkFrame.obj \
  153.     $(TMPDIR)\tkGC.obj \
  154.     $(TMPDIR)\tkGeometry.obj \
  155.     $(TMPDIR)\tkGet.obj \
  156.     $(TMPDIR)\tkGrab.obj \
  157.     $(TMPDIR)\tkGrid.obj \
  158.     $(TMPDIR)\tkImage.obj \
  159.     $(TMPDIR)\tkImgBmap.obj \
  160.     $(TMPDIR)\tkImgGIF.obj \
  161.     $(TMPDIR)\tkImgPPM.obj \
  162.     $(TMPDIR)\tkImgPhoto.obj \
  163.     $(TMPDIR)\tkImgUtil.obj \
  164.     $(TMPDIR)\tkListbox.obj \
  165.     $(TMPDIR)\tkMacWinMenu.obj \
  166.     $(TMPDIR)\tkMain.obj \
  167.     $(TMPDIR)\tkMenu.obj \
  168.     $(TMPDIR)\tkMenubutton.obj \
  169.     $(TMPDIR)\tkMenuDraw.obj \
  170.     $(TMPDIR)\tkMessage.obj \
  171.     $(TMPDIR)\tkOption.obj \
  172.     $(TMPDIR)\tkPack.obj \
  173.     $(TMPDIR)\tkPlace.obj \
  174.     $(TMPDIR)\tkPointer.obj \
  175.     $(TMPDIR)\tkRectOval.obj \
  176.     $(TMPDIR)\tkScale.obj \
  177.     $(TMPDIR)\tkScrollbar.obj \
  178.     $(TMPDIR)\tkSelect.obj \
  179.     $(TMPDIR)\tkText.obj \
  180.     $(TMPDIR)\tkTextBTree.obj \
  181.     $(TMPDIR)\tkTextDisp.obj \
  182.     $(TMPDIR)\tkTextImage.obj \
  183.     $(TMPDIR)\tkTextIndex.obj \
  184.     $(TMPDIR)\tkTextMark.obj \
  185.     $(TMPDIR)\tkTextTag.obj \
  186.     $(TMPDIR)\tkTextWind.obj \
  187.     $(TMPDIR)\tkTrig.obj \
  188.     $(TMPDIR)\tkUtil.obj \
  189.     $(TMPDIR)\tkVisual.obj \
  190.     $(TMPDIR)\tkWindow.obj
  191.  
  192. TCLDLL = tcl80.dll
  193. TCLLIB = tcl80.lib
  194. TKDLL = tk80.dll
  195. TKLIB = tk80.lib
  196. WISH = wish80.exe
  197. TKTEST = tktest.exe
  198.  
  199. #
  200. # Targets
  201. #
  202.  
  203. all: cfgdll $(TKDLL) cfgexe $(WISH) cfgcln
  204. tktest: cfgdll $(TKDLL) cfgtest $(TKTEST) cfgcln
  205.  
  206. test: tktest
  207.     $(TKTEST) &&|
  208.         cd ../tests
  209.         console show
  210.         update
  211.         source all
  212. |
  213.  
  214. # Implicit Targets
  215.  
  216. .c.obj:
  217.     @$(BCC32) {$< }
  218.  
  219. .dll.lib:
  220.     $(IMPLIB) -c $@ $<
  221.  
  222. .rc.res:
  223.     $(RC) -i$(INCLUDES) $<
  224.  
  225. #
  226. # Special case object file targets
  227. #
  228.  
  229. $(TMPDIR)\testMain.obj : $(ROOT)\win\winMain.c
  230.     $(BCC32) -c -o$@ $(ROOT)\win\winMain.c
  231.  
  232. #
  233. # Configuration file targets - these files are implicitly used by the compiler
  234. #
  235.  
  236. cfgdll:
  237.     @$(CP) &&|
  238.         -n$(TMPDIR) -I$(INCLUDES) -c -WD
  239.         -D$(DEFINES) -3 -d $(PROJECTCCFLAGS)
  240. | bcc32.cfg >NUL
  241.  
  242. cfgexe:
  243.     @$(CP) &&|
  244.         -n$(TMPDIR) -I$(INCLUDES) -c -W
  245.         -D$(DEFINES) -3 -d $(PROJECTCCFLAGS)
  246. | bcc32.cfg >NUL
  247.  
  248. cfgtest:
  249.     @$(CP) &&|
  250.         -n$(TMPDIR) -I$(INCLUDES) -c -W
  251.         -D$(DEFINES);TK_TEST -3 -d $(PROJECTCCFLAGS)
  252. | bcc32.cfg >NUL
  253.  
  254. cfgcln:
  255.     @$(RM) bcc32.cfg
  256.  
  257. #
  258. # Executable targets
  259. #
  260.  
  261. $(TKDLL): $(TKOBJS) tk.def rc\tk.res
  262.     $(TLINK32) @&&|
  263. $(LNFLAGS_dll) $(TKOBJS)
  264. $@
  265. -x
  266. $(LNLIBS_dll)
  267. tk.def
  268. rc\tk.res
  269. |
  270.  
  271. $(WISH): $(WISHOBJS) $(TKLIB) rc\wish.res
  272.     $(TLINK32) @&&|
  273. $(LNFLAGS_exe) $(WISHOBJS)
  274. $@
  275. -x
  276. $(LNLIBS_exe)
  277. |, &&|
  278. EXETYPE WINDOWS
  279. CODE PRELOAD MOVEABLE DISCARDABLE
  280. DATA PRELOAD MOVEABLE MULTIPLE
  281. |, rc\wish.res
  282.  
  283. $(TKTEST): $(TKTESTOBJS) $(TKLIB)
  284.     $(TLINK32) $(LNFLAGS_exe) @&&|
  285. $(TKTESTOBJS)
  286. $@
  287. -x
  288. $(LNLIBS_exe)
  289. |, &&|
  290. EXETYPE WINDOWS
  291. CODE PRELOAD MOVEABLE DISCARDABLE
  292. DATA PRELOAD MOVEABLE MULTIPLE
  293. |, 
  294.  
  295. # Other dependencies
  296. #
  297.  
  298. rc\wish.res: rc\wish.ico
  299. rc\tk.res: rc\tk.ico rc\*.cur
  300.  
  301. # The following rule automatically generates a tk.def file containing
  302. # an export entry for every public symbol in the $(TKDLL) library.
  303.  
  304. tk.def: $(TKOBJS)
  305.     $(TCLLIBDIR)\dumpexts.exe -o $@ $(TKDLL) @&&|
  306.         $(TKOBJS)
  307. |
  308.  
  309. # rule to build library object files
  310.  
  311. # debugging rules, the .dll and .exe files must be in the same
  312. # directory as the object files for debugging purposes
  313.  
  314. $(TMPDIR)\$(TKDLL): $(TKDLL)
  315.     $(CP) $(TKDLL) $(TMPDIR)
  316.  
  317. $(TMPDIR)\$(TCLDLL): $(TCLLIBDIR)\$(TCLDLL)
  318.     $(CP) $(TCLLIBDIR)\$(TCLDLL) $(TMPDIR)
  319.  
  320. $(TMPDIR)\$(WISH): $(WISH)
  321.     $(CP) $(WISH) $(TMPDIR)
  322.  
  323. $(TMPDIR)\$(TKTEST): $(TKTEST)
  324.     $(CP) $(TKTEST) $(TMPDIR)
  325.  
  326. debug: $(TMPDIR)\$(TKDLL) $(TMPDIR)\$(TCLDLL) $(TMPDIR)\$(TKTEST)
  327.  
  328.  
  329. # remove all generated files
  330.  
  331. clean:
  332.     $(RM) $(WISH)
  333.     $(RM) $(TKTEST)
  334.     $(RM) $(TKLIB) 
  335.     $(RM) $(TKDLL)  
  336.     $(RM) rc\*.res  
  337.     $(RM) tk.def
  338.     $(RM) $(TMPDIR)\*.obj
  339.     $(RM) *.cfg
  340.